/*******************************************************************************
*                                                                              *
* This file provides functions implementation for a MAPK cascade		       *
*                                                                              *
*******************************************************************************/

#ifndef __PLUGIN_H__
#define __PLUGIN_H__

////////////////////////////////////////////////////////////////////////////////
// Includes
////////////////////////////////////////////////////////////////////////////////

#include "SCSystem.hpp"
#include "SC_LibConfig.h"

////////////////////////////////////////////////////////////////////////////////
// Prototypes
////////////////////////////////////////////////////////////////////////////////

/**
 *	Initialises the plugin.
 *	This function is called when a plugin is loaded to initialise some data
 *	(like loading a file) before computation starts.
*/
LIBRARY_DECL void InitPlugin (const std::string &);

/**
 *	Closes the plugin properly.
 *	This function is called when a plugin is closed to finalise some data (like 
 *	closing a file or free memory) when computation ends.
*/
LIBRARY_DECL void ClosePlugin (void);

/**
 *	Phosphorylation
*/
LIBRARY_DECL bool Phosphorylation (SC::SCSystem &, const SC::SCSystem &, SC::SCSystem &);

/**
 *	Dephosphorylation
*/
LIBRARY_DECL bool Dephosphorylation (SC::SCSystem &, const SC::SCSystem &, SC::SCSystem &);

////////////////////////////////////////////////////////////////////////////////

#endif
